package com.zm.xdata.service.publics.poster.util;


import com.baomidou.mybatisplus.core.toolkit.StringUtils;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FileUtils {

    public static String getFileSuffix(String fileName) {
        String suffix = "";

        if (StringUtils.isNotEmpty(fileName)) {
            suffix = fileName.substring(fileName.lastIndexOf("."));
        }
        return suffix;
    }

    /**
     * 根据传入过来的基于base64编码的头获取文件后缀
     */
    public static String getImgSuffix(String param) {
        String suffix = "";
        if ("data:image/jpeg;base64".equalsIgnoreCase(param)) {// 编码的jpeg图片数据
            suffix = ".jpg";
        } else if ("data:image/jpg;base64".equalsIgnoreCase(param)) {// 编码的jpg图片数据
            suffix = ".jpg";
        } else if ("data:image/x-icon;base64".equalsIgnoreCase(param)) {// 编码的icon图片数据
            suffix = ".ico";
        } else if ("data:image/gif;base64".equalsIgnoreCase(param)) {// 编码的gif图片数据
            suffix = ".gif";
        } else if ("data:image/png;base64".equalsIgnoreCase(param)) {// 编码的png图片数据
            suffix = ".png";
        }
        return suffix;
    }

    /**
     * 将今天的日期转化成文件夹名称
     * @return
     */
    public static String getFlodNameTodays()
    {
        Date date = new Date();
        String dateOne = new SimpleDateFormat("yyyyMMdd").format(date);
        return dateOne;
    }

    /**
     * 在磁盘上创建文件并写入内容
     * @param path  路径
     * @param filename  文件名
     * @param filesuffix  文件后缀
     * @param content  文件内容
     * @throws IOException
     */
    public static void createFile(String path,String filename,String filesuffix,String content) throws IOException {
        File dir = new File(path);
        // 一、检查放置文件的文件夹路径是否存在，不存在则创建
        if (!dir.exists()) {
            dir.mkdirs();// mkdirs创建多级目录
        }
        File checkFile = new File(path + "/"+filename+filesuffix);
        FileWriter writer = null;
        try {
            // 二、检查目标文件是否存在，不存在则创建
            if (!checkFile.exists()) {
                checkFile.createNewFile();// 创建目标文件
            }
            // 三、向目标文件中写入内容
            // FileWriter(File file, boolean append)，append为true时为追加模式，false或缺省则为覆盖模式
            writer = new FileWriter(checkFile, false);
            writer.append(content);
            writer.flush();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (null != writer)
                writer.close();
        }
    }


    /**
     * 得到文件的扩展名
     *
     * @param fileName
     * @return
     */
    public static String getFileExt(String fileName) {

        int potPos = fileName.lastIndexOf('.') + 1;
        String type = fileName.substring(potPos, fileName.length());
        return type;
    }

}
